﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data.Sql;
using System.Configuration;
using UricaoWeb.LogicaDeNegocios.Propiedad;
using UricaoWeb.LogicaDeNegocios.Seguridad_y_Roles;
using System.Data;
using System.ComponentModel;
using System.Windows.Forms;
using System.Drawing;

namespace UricaoWeb.Presentacion
{
    public partial class API_propiedades_VerHotel : API_Seguridad_Principal
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            var master = Master as MasterPage;
            if (master != null)
            {
                master.actualizar_label();
            }
            base.validar_usuario();
            //DatosHotel.Visible = false;
            BloquearCampos();
        }

        protected void BloquearCampos()
        {
            //Procedimiento que se usara para que no los campos no sean accesibles, y asi lograr que solo sirvan para la Presentacion de datos,
            //ya que en esta ventana lo que se hara es consultar la informacion sobre los hoteles
            TBdescripcionHotel.Enabled = false;
            TBdescripcionHotel.BackColor = Color.White;
            TBdireccion.Enabled = false;
            TBdireccion.BackColor = Color.White;
            TBnombreHotel.Enabled = false;
            TBnombreHotel.BackColor = Color.White;
            TBtelefonoHotel.Enabled = false;
            TBtelefonoHotel.BackColor = Color.White;
            CB1Estrella.Enabled = false;
            CB2Estrellas.Enabled = false;
            CB3Estrellas.Enabled = false;
            CB4Estrellas.Enabled = false;
            CB5Estrellas.Enabled = false;
        }

        protected void CargarDatos(string _nombreHotel)
        {
            DataSet _datosHotel = new DataSet();//creamos el dataset para que cargue los datos del hotel
            LogicaPropiedades _hotel = new LogicaPropiedades();//instanciamos un ojeto de tipo LogicaPropiedades para acceder a sus metodos
            _datosHotel = _hotel.MostrarDatosHotel(_nombreHotel, _datosHotel);//llamamos a la funcion que devuelve los datos del hotel y los descarga en dataset
            //ASIGANAMOS LOS VALORES DEL HOTEL A LOS RESPECTIVOS CAMPOS
            TBnombreHotel.Text = _datosHotel.Tables[0].Rows[0][0].ToString();
            TBdescripcionHotel.Text = _datosHotel.Tables[0].Rows[0][1].ToString();
            TBtelefonoHotel.Text = _datosHotel.Tables[0].Rows[0][2].ToString();
            if (_datosHotel.Tables[0].Rows[0][3].ToString() == "1")
                CB1Estrella.Checked = true;
            if (_datosHotel.Tables[0].Rows[0][3].ToString() == "2")
                CB2Estrellas.Checked = true;
            if (_datosHotel.Tables[0].Rows[0][3].ToString() == "3")
                CB3Estrellas.Checked = true;
            if (_datosHotel.Tables[0].Rows[0][3].ToString() == "4")
                CB4Estrellas.Checked = true;
            if (_datosHotel.Tables[0].Rows[0][3].ToString() == "5")
                CB5Estrellas.Checked = true;
            TBdireccion.Text = _datosHotel.Tables[0].Rows[0][4].ToString();
            IFotoHotel.ImageUrl = _datosHotel.Tables[0].Rows[0][5].ToString();
            if (_datosHotel.Tables[0].Rows[0][6].ToString() == "True")
            {
                Beliminar.Text = "Bloquear";
                Bmodificar.Enabled = true;
            }
            else
            {
                Beliminar.Text = "Desbloquear";
                Bmodificar.Enabled = false;
            }
        }

        protected void Beliminar_Click(object sender, EventArgs e)
        {
            LogicaPropiedades _hotel = new LogicaPropiedades();
            ScriptManager.RegisterClientScriptBlock(this.Page, this.Page.GetType(), "alert", "Registro bloqueado", true);
            _hotel.EliminarHotel(TBnombreHotel.Text);
			//Server.Transfer("~/Presentacion/API_propiedades_VerHotel.aspx");
			LimpiarCampos();
			CargarDatos(Session["_nombreHotel"].ToString());
            //CoBhoteles.SelectedValue = "NULL";
            //Server.Transfer(_siguientePagina);
            
        }

        protected void Bmodificar_Click(object sender, EventArgs e)
        {
            string _siguientePag = "~/Presentacion/API_propiedades_ModificarHotel.aspx";
            //Session["_nombreHotel"] = CoBhoteles.SelectedValue.ToString();
            Server.Transfer(_siguientePag);
        }

        protected void CoBhoteles_Init(object sender, EventArgs e)
        {
            LogicaPropiedades _hotel = new LogicaPropiedades();
            DataSet _nombreHoteles = new DataSet();
            _nombreHoteles = _hotel.ObtenerNombreHoteles();
            CoBhoteles.DataSource = _nombreHoteles;
            CoBhoteles.DataBind();
			SeleccionarCBHotelIndex();
			DatosHotel.Visible = true;
			CargarDatos(CoBhoteles.SelectedItem.Text.ToString());
			Session["_nombreHotel"] = CoBhoteles.SelectedItem.Text.ToString();
        }

		private void SeleccionarCBHotelIndex()
		{
			Logica_Usuario _seguridad = (Logica_Usuario)Session["user"];
			LogicaPropiedades._idHotel = _seguridad.FkHotel;
			Session["idHotel"] = LogicaPropiedades._idHotel;
			int contadorIndices = CoBhoteles.Items.Count - 1;
			CoBhoteles.Enabled = false;

			while (contadorIndices >= 0)
			{
				CoBhoteles.SelectedIndex = contadorIndices;
				if (CoBhoteles.SelectedValue.ToString() == Session["idHotel"].ToString())
				{
					CoBhoteles.SelectedIndex = contadorIndices;
					break;
				}
				contadorIndices--;
			}

		}

        protected void CoBhoteles_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (CoBhoteles.SelectedValue.ToString() == "NULL")
            {
				LimpiarCampos();
                DatosHotel.Visible = false;
            }
            else
            {
				LimpiarCampos();
                CargarDatos(CoBhoteles.SelectedValue.ToString());
                Session["_nombreHotel"] = CoBhoteles.SelectedValue.ToString();
                DatosHotel.Visible = true;
            }
            
        }

        protected void LimpiarCampos()
        {
            TBdescripcionHotel.Text = "";
            TBdireccion.Text = "";
            TBnombreHotel.Text = "";
            TBtelefonoHotel.Text = "";
            CB1Estrella.Checked = false;
            CB2Estrellas.Checked = false;
            CB3Estrellas.Checked= false;
            CB4Estrellas.Checked = false;
            CB5Estrellas.Checked= false;
        }

    }
}